Problem:
Podczas konfiguracji integracji AVEVA Edge z Active Directory poprzez LDAP pojawia się pytanie, jak poprawnie skonstruować zapytanie do AD, aby pobrać tylko te grupy i tych użytkowników, którzy mają być wykorzystani w projekcie. Problem ma dwa warianty:
-grupy i użytkownicy znajdują się w jednej jednostce organizacyjnej (OU),
-grupy i użytkownicy są rozsiani po różnych OU w tej samej domenie (wpisanie pojedynczego DN w polu "Search Base" pozwala odczytać tylko jeden kontener, a wpisanie DN najwyższego poziomu domen zwraca wszystkie obiekty - często setki niepotrzebnych).
Przyczyna:
AVEVA Edge wykorzystuje standardowy mechanizm zapytań LDAP, którego składnia nie jest opisana w dokumentacji AVEVA, ponieważ nie jest to mechanizm stworzony przez AVEVA. W polu "Search Base" można wskazać tylko jeden nadrzędny kontener, dlatego przy obiektach rozsianych po różnych OU konieczne jest zastosowanie dodatkowego filtra LDAP w polu "Filter query".
Rozwiązanie:
Jeśli grupy i użytkownicy, którzy mają być wykorzystani w projekcie, znajdują się w jednym kontenerze (OU), wystarczy wskazać ten kontener w polu "Search Base":
1. W narzędziu "AD Users and Computers" z zakładki "View” włączyć opcję "Advanced Features"
2. Kliknąć prawym przyciskiem myszy na kontenerze (OU), który zawiera odpowiednie grupy lub użytkowników, i wybrać Properties.
3. Przejść do zakładki "Attribute Editor" i skopiować zawartość pola distinguishedName, np.: OU=Uzytkownicy,OU=SCADA system,DC=mojadomena,DC=local
4. Skopiowaną wartość wkleić w konfiguracji aveva edge w polu "Search Base"
Po zatwierdzeniu ustawień, w konfiguracji uprawnień dla grup w AVEVA Edge, system powinien widzieć grupy i użytkowników znajdujących się we wskazanym kontenerze.
Jeśli grupy i użytkownicy są rozsiani po różnych OU w tej samej domenie, należy:
1. W polu "Search Base" wpisać DN najwyższego poziomu domeny, np.: "DC=mojadomena,DC=local"
2. Po stronie Active Directory oznaczyć grupy i użytkowników, którzy mają być wykorzystywani w AVEVA Edge , wspólnym słowem kluczowym w jednym z atrybutów (np. w atrybucie extensionattribute15 ustawić wartość AVEVA).W polu "Filter query" wpisać filtr LDAP, który wyszuka w całej domenie wszystkie grupy i wszystkich użytkowników posiadających ten atrybut, np.:
&(extensionattribute15=aveva)(|(objectCategory=person)(objectCategory=group)))
Powyższy filtr zwraca obiekty, które jednocześnie:
-mają w atrybucie extensionattribute15 wartość AVEVA,
-są użytkownikiem (objectCategory=person) lub grupą (objectCategory=group).
Uwagi dodatkowe:
-składnia filtrów LDAP nie jest opisana w dokumentacji AVEVA Edge - należy posiłkować się ogólnodostępną dokumentacją LDAP, np.: https://confluence.atlassian.com/kb/how-to-write-ldap-search-filters-792496933.html
-przed konfiguracją w AVEVA Edge warto przetestować poprawność filtra innym narzędziem, np. poleceniem w powershell. jeżeli ten sam filtr w powershell zwraca spodziewany wynik, a w AVEVA Edge nie - można wówczas podejrzewać problem z oprogramowaniem